package ar.edu.utn.frba.tacs.warnes.rest;

import java.util.ArrayList;
import java.util.List;

import ar.edu.utn.frba.tacs.warnes.entities.Auto;
import ar.edu.utn.frba.tacs.warnes.entities.Pedido;
import ar.edu.utn.frba.tacs.warnes.entities.Pieza;
import ar.edu.utn.frba.tacs.warnes.utils.ContenedorWarnes;

public class WarnesResource {
	public WarnesResource() {
		this.cargarDatosInicialesParaTest();
	}

	/**
	 * Carga los datos que se usaran para los test. Al parecer CXF crea un nuevo
	 * ambiente, donde el Contenedor que tengo en las clases de test es
	 * diferente al contendor que maneja el framework
	 */
	private void cargarDatosInicialesParaTest() {
		if (ContenedorWarnes.getInstance().getAutos().isEmpty()) {
			Auto auto1 = ContenedorWarnes.getInstance().creaUnAuto("auto-789");
			Auto auto2 = ContenedorWarnes.getInstance().creaUnAuto("auto-456");
			Auto auto3 = ContenedorWarnes.getInstance().creaUnAuto("auto-123");
			Pieza pieza1 = ContenedorWarnes.getInstance().creaUnaPieza(
					"primera");
			Pieza pieza2 = ContenedorWarnes.getInstance().creaUnaPieza(
					"segunda");
			Pieza pieza3 = ContenedorWarnes.getInstance().creaUnaPieza(
					"tercera");

			pieza1.setAutoOrigen(auto1);
			pieza2.setAutoOrigen(auto2);
			pieza3.setAutoOrigen(auto3);

			List<Pieza> piezas = new ArrayList<Pieza>();
			piezas.add(pieza1);
			piezas.add(pieza2);

			Pedido pedido1 = ContenedorWarnes.getInstance().crearUnPedido(piezas);
			Pedido pedido2 = ContenedorWarnes.getInstance().crearUnPedido(new ArrayList<Pieza>());
			
			for (Auto auto : ContenedorWarnes.getInstance().getAutos()) {
				auto.save();
			}
			for (Pieza pieza : ContenedorWarnes.getInstance().getPiezas()) {
				pieza.save();
			}
			
			pedido1.save();
			pedido2.save();
		}
	}
}
